//package com.cos.lession78mp;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.cos.lession78mp.dao.EmpMapper;
//import com.cos.lession78mp.dao.UserMapper;
//import com.cos.lession78mp.entity.SysUser;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @author: COS
// * @time: 2022/10/11 14:19
// * @description:
// */
//
//public class Demo2 extends Lession78MpApplicationTests{
//    @Autowired
//    private UserMapper userMapper;
//
//    @Test
//    public void t7(){
//        QueryWrapper<SysUser> qw = new QueryWrapper<>();
//        // 查询年龄为18的用户  eq = 如果是多个eq 默认and拼接多个 = 条件
//        // age = 18
////        qw.eq("age", 18);
//        // or age = 24
////        qw.or().eq("age",24);
//        // age < 20
////        qw.lt("age", 20);
//        // age <= 20
////        qw.le("age", 20);
//        // age > 20
////        qw.gt("age", 20);
//        // age >= 20
////        qw.ge("age", 20);
//        // 不等于
////        qw.ne("age", 20);
//        //查询为空
////        qw.isNull("bornDate");
//        // 查询不为空的
////        qw.isNotNull("bornDate");
//        // 设置 查询字段 ,可以设置别名, 但是要注意他是自动封装的,所以注意别名和对象的属性名不一致封装就失败
////        qw.select("age","name");
//        // 聚合查询使用 select 方法
////        qw.select("max(age) as age");
////        qw.select("min(age) as age");
////        qw.select("avg(age) as age");
////        qw.select("sum(age) as age");
//        //排序
////        qw.orderByAsc("age");
////        qw.orderByDesc("name");
//        //模糊查询
//        // %a%
////        qw.like("name", "a");
//        // %a
////        qw.likeLeft("name", "a");
//        // a%
////        qw.likeRight("name", "a");
//        // not like %a%
////        qw.notLike("name", "a");
//        //分组查询
//        // 以邮箱分组 找 平均年龄
//        qw.select("avg(age) as age ","email").groupBy("email").having("age > 18");
////        qw.select("avg(age) as age ","email").groupBy("email").having("age > {0} and age < {1}",18,20);
//        //in
//        //qw.in("id", 10,12,13,14);
//        // not in
////        qw.notIn("id", 10,12,13,14);
//        //qw.between("age", 16, 20);
//        //qw.notBetween("age", 16, 20);
////        qw.eq("year(bornDate)", "2022-10-11");
////        qw.eq("year(bornDate)", "YEAR(NOW())");
////        qw.apply("year(bornDate)=YEAR(NOW())");
////        qw.last("limit 5");
////        List<SysUser> sysUsers = userMapper.selectList(qw);
//        qw.select("max(bornDate) as max","min(bornDate) as min");
//        List<Map<String,Object>> sysUsers = userMapper.selectMaps(qw);
//        sysUsers.forEach(System.out::println);
//        // mybatis-plus 现在为止 不支持 链表查询 ,要使用MApper.xml
////        System.out.println(empMapper.getEmpWithDept());
//    }
//@Autowired
//EmpMapper empMapper;
//
//
//    @Test
//    public void t8(){
//        //使用id主键查询
//        //System.out.println(userMapper.selectById(10));
//        //使用主键进行批量查询 in
////        userMapper.selectBatchIds(Arrays.asList(10,11,12)).forEach(System.out::println);
//        // map参数 全是 eq + and 拼接的条件
////        Map<String,Object> map = new HashMap<>();
////        map.put("age", 18);
////        map.put("email", "test1@baomidou.com");
////        userMapper.selectByMap(map).forEach(System.out::println);
//        QueryWrapper<SysUser> qw = new QueryWrapper();
//        // 聚合函数 之 count
////        Integer integer = userMapper.selectCount(new QueryWrapper<SysUser>().eq("age", 18));
////        System.out.println(integer);
//        // 返回的结果是list集合中 的map集合
//        // mapJ集合种保存的数查询的结果 结果集中 属性名是k 查询的值 是v
////        List<Map<String, Object>> age = userMapper.selectMaps(qw.eq("age", 18));
////        age.forEach(System.out::println);
//        // 使用条件查询单条数据 ,如果结果多余1条就会报错
//       // System.out.println(userMapper.selectOne(qw.eq("age", 999999)));
//    }
//
//    @Test
//    public void t9(){
//        //"Tom1", 18,"test3@baomidou.com"
//        SysUser user = new SysUser();
//        user.setAge(9999);
//        QueryWrapper<SysUser> qw = new QueryWrapper<>();
//        qw.eq("name","Sandy3");
//        qw.eq(user.getAge()<150,"email", "test3@baomidou.com");
//        // update e_user set name=? , age = ? , email= ? where name = tom1 and name = tom1
//        System.out.println(userMapper.update(user, qw));
////        userMapper.delete(qw);
//        // 在mybaits-plus 使用map参数时  都是 eq + and 拼接
////        Map<String,Object> maps = new HashMap<>();
////        maps.put("name", "tom2");
////        maps.put("age", 28);
////        System.out.println(userMapper.deleteByMap(maps));
////        System.out.println(userMapper.deleteBatchIds(Arrays.asList(6,7,8)));
//    }
//
//}
